FIG. 1 shows a block diagram of a disk drive 100 such as a HDD (hard disk drive) for example that stores data magnetically. A host machine 102 accesses the disk drive 100 for reading/writing data from/to a magnetic disk 104 within the disk drive 100. The disk drive 100 includes an interface IC (integrated circuit) 106 between the host machine 102 and the disk drive 100.
A MPU (main processing unit) 108 is a data processor that controls operation of the components of the disk drive 100 and is coupled to the interface IC 106. The MPU 108 is also coupled to a data storage unit 110 that typically stores a retry table and firmware for error correction with the retry table during read/write of data from/to the magnetic disk 104.
In addition, the MPU 108 is coupled to a read/write IC (integrated circuit) 111 for performing the read/write of data from/to the magnetic disk 104. A pre-amplifier 112 amplifies signals from/to a magnetic head 114 used for reading/writing data from/to the magnetic disk 104. The MPU 108 controls a VCM (voice coil motor) driver 116 that moves the magnetic head 114 with respect to the magnetic disk 104. The MPU 108 also controls a SPM (spindle motor) driver 118 that rotates the magnetic disk 104 with respect to the magnetic head 114. Such components of FIG. 1 and such operation of these components of the disk drive 100 are known to one of ordinary skill in the art as disclosed in U.S. Pat. No. 6,381,725.
FIG. 2 illustrates a retry table stored within the data storage unit 110 and used during error correction when reading/writing data from/to the magnetic disk 104. The table includes a plurality of parameters, including parameters A through N, used for determining the conditions of the read/write operation. For example, parameter A indicates the value of current to be sourced through the magnetic head 114 during a read/write operation, parameter B indicates the value of track offset for the tracking mechanism of the magnetic head 114, parameter C indicates a value of cutoff frequency for a low-pass filter within the read/write IC 111, and so on. Each row of the table of FIG. 2 has a different value for each of such parameters A through N.
FIG. 3 shows a flowchart of steps performed by the MPU 108 when executing the sequences of instructions (i.e., the firmware) stored within the data storage unit 110. The data storage unit 110 is typically a PROM (programmable read only memory) that stores the retry table of FIG. 2 and the sequences of instructions (i.e., the firmware) to be executed by the MPU 108 for performing the steps of FIG. 3. FIG. 3 includes the steps for performing error correction using the retry table of FIG. 2 during read/write of data from/to the magnetic disk 104.
Referring to FIG. 2, the MPU 108 receives a read/write command from the host machine 102 (step 122 of FIG. 3). The MPU 108 controls the components 111, 116, and 118 to perform the read/write of data from/to the magnetic disk 104 as specified from the host machine 102 (step 124 of FIG. 3). The MPU 108 also determines whether an error occurred during the read/write operation (step 126 of FIG. 3). Mechanisms for determining whether such an error occurred are known to one of ordinary skill in the art.
If an error did occur, the read/write operation is determined to be invalid and to be valid otherwise. If the read/write operation is determined to be valid, the process for the read/write operation ends successfully. If the read/write operation is determined to be invalid, the MPU 108 reads the retry table of FIG. 2 from the data storage unit 110 (step 128 of FIG. 3).
The MPU 108 determines whether a variable Retry_Count is greater than a specified number Max_Retry_Count (step 130 of FIG. 3). Retry_Count is initialized to zero when the read/write command is received (step 122 of FIG. 3) and keeps a count of the number of retries for the read/write operation. Max_Retry_Count specifies a maximum number of retries for the read/write operation to be performed by the MPU 108. If Retry_Count is greater than Max_Retry_Count, the read/write operation ends typically with a warning message that the read/write operation failed.
If Retry_Count is not greater than Max_Retry_Count, the MPU 108 configures the components 111,116, and 118 to retry the read/write operation with values of the parameters A through N as specified by a first row (step 1 in FIG. 2) in the retry table of FIG. 2 (steps 132 and 124 of FIG. 3). In addition, the MPU 108 increments Retry_Count for every performance of the read/write step 124 (step 133 of FIG. 3). Steps 124, 126, 128, 130, 132, and 133 are repeated with each subsequent row of the retry table of FIG. 2, until the read/write operation is determined to be valid or until Retry_Count is greater than Max_Retry_Count, at which point the read/write operation ends.
In the prior art, one retry table with the corresponding firmware for error correction using such a retry table is stored within the data storage unit 110. However, the range of values for the parameters A though N in the retry table of FIG. 2 may be desired to be different for different applications, operating conditions, and head/mechanical characteristics of the disk drive 100. For example, a disk drive used within a PC (personal computer) typically has different operating conditions and head/mechanical characteristics from a disk drive used within an A/V (audio visual) system.
In the prior art, another retry table with corresponding firmware for using that different retry table is programmed into the data storage unit 110 for each of the different applications, operating conditions, and head/mechanical characteristics of the disk drive. However, programming the data storage unit 110 (typically a PROM device) for each of the different applications, operating conditions, and head/mechanical characteristics of the disk drive is time-consuming and costly. For example, verification of the compatibility between each firmware programmed into the data storage unit 102 and the MPU 108 may be time-consuming and costly. Nevertheless, the firmware typically needs to be modified for a change of the retry table in the prior art.
In addition in the prior art, a skilled production engineer (who may make an error in human judgment) keeps track of various retry tables for the different applications, operating conditions, and head/mechanical characteristics of the disk drive. Furthermore, a fixed retry table of the prior art within the data storage unit 110 is not amenable for adaptive and flexible error correction within the disk drive 100.
Thus, adaptive and flexible error correction is desired for read/write operations within a disk drive without modification of the firmware used for such error correction.